1. Field of the Invention
This invention relates to an information processing apparatus and, more particularly, to a method of constructing a software work tool used in software work on the information processing apparatus.
2. Description of the Related Art
Information processing apparatuses range from devices for processing numeric data (i.e., computers) to devices for processing general information, such as sentences, voices and images. Recently, by effectively utilizing results of research into artificial intelligence (AI), information processing apparatuses have been developed that can even handle knowledge of human beings such as natural languages.
However, almost all the information processing apparatuses are based on the stored program system. Therefore, development and operation of software (i.e., programs and information such as document, specification, environment definition and data) are indispensable to the information processing apparatus' function.
Work on software development and software operation involves creation of a program execution environment; activation of a program; input of information to the program; supervision of the program; decoding of the program's processed result; decoding of the program's output; and input, manipulation, output and creation of information.
In work like software development, software operation, etc. a person must initially operate the software, observe the processing situation and determine the operation to be executed next.
For this reason, software development and software operation takes a lot of time and money.
Thus, to save time, a variety of software tools have been created on the information processing apparatus so that the software can be operated automatically. Various tools have been created to facilitate this software work and are now well known.
However, all software work cannot be automated by the use of a computer and an operating system. In practice, conventional operating systems have a component called a job controller by which software activation can be supervised and the simple succeeding processing can be activated depending on the processed result. However, the mechanism for automating the software work according to the prior art is very primitive.
This is because the conventional technology provides only software work tools such as job controllers in which a special tool for manipulating particular information is created and special tool groups are activated in substantially the given order. Accordingly, if the software work becomes slightly complicated, additional works such as development and operation of special tools are needed. This hardly contributes to the saving of labor. Rather, it increases the number of software and makes the software work more complicated. In addition, these special tools are not designed to communicate with each other with respect to software work. Therefore, if a file output from a certain special tool is input to another special tool, then special tools for converting the format must be developed and operated only for that set of two special tools. Consequently, the number of special tools is markedly increased. For example, whereas 4 special tools need 6 sets, 5 special tools need 10 sets and 100 special tools need 4,950 sets.
So long as software work tools are created by the conventional program creating method, they are created such that special knowledge is examined and fixed to the program. This results in the shortcoming that knowledge cannot be investigated and added with ease While the software work tool is being-operated. Further, a process such as a design of a work plan in which a correct answer and an optimum solution are searched from a lot of possibilities, depends on a human being. This process frequently takes a lot of time and also frequently degrades the quality of the software work tool.
An expert system and a cooperation type expert system are now available as well-known technologies resulting from research into AI technology. Since expert systems includes knowledge and an inference device and are flexible in their forms of expression, they have a characteristic which enables knowledge to be easily investigated and added while they are being operated. Further, expert systems can execute processing for searching the correct answer and the optimum solution from a lot of possibilities in a short period of time. Furthermore, in the case of cooperation type expert systems, an instruction for executing a communication between two expert systems is prepared so that the communication is frequently performed on the basis of an object-oriented calculation model which can transmit and receive information as an inference material.
However, even though individual expert systems have been developed as special systems in which particular software is operated and observed by requesting the operating system, a software operation unit is not incorporated in their design. Thus, they are not useful for users who want to operate different software. Also, even if the software is the same, such expert systems are not sufficiently useful for users who need different experience and knowledge. In every specialized field, it is necessary to create a special expert system for requesting the operating system to operate the software. This problem has not yet been solved.
Software tools (such as "Automator" marketed by "Direct Technology" for IBM compatible PCs), which is as well be called software robots, for use by personal computers are now commercially available in the U.S. market. According to these software tools, a picture screen, a central processing unit (CPU) register, a memory, a key depression or a supervisory program for checking the condition by reading a timer are activated on the memory, and the picture screen, the memory, an application program or data output to a host computer are carried out automatically instead of requiring a key depression by the user in accordance with a procedure and a rule described by the user. Thus, the fixed form work of the user is replaced.
Let us consider the arrangement of the above software tool. Firstly, it has no communication device for another software tool of the same kind. That is, it is not provided with a communicator for transmitting and receiving communication information including work requests and work reports as will be described in this invention.
Secondly, it is not designed to return the execution request result from the software via the operator or the observation unit. That is, it includes only means for judging fragmentary influences output to the hardware which might be the picture screen and the memory. In other words, it is not provided with a software operating unit which will be described with regard the present invention.
Thirdly, it has a device for storing an operation procedure given by the user. However, this operation procedure merely comprises the supervision of the hardware and the input acting for the key depression, as described above. That is, it is not provided with a work knowledge storer for storing operation programs and information operation as will be described in this invention.
As described above, this software tool aims at small-scale and low-level applications in which a plurality of input programs acting for the key strokes are independently operated in parallel. In conclusion, the above-mentioned software tool lacks the features of this invention and is not intended to constitute a general purpose software work tool, as is this invention, in which work is supported by expert knowledge of software development and operation in a self-differentiating fashion.
It has been very difficult to design a strong general purpose software work tool because a significant amount of time cannot be saved if experience and knowledge in a specific field of the software work (e.g., the way of erasing an unnecessary file from an external storage device) are not incorporated in the other software work tool.
However, a software work tool with knowledge based on experience in a variety of special fields is too large and its performance is too poor, thus requiring frequent correction.
Such a software work tool may be connected to another software work tool without a communication device by direct program access, or such that one tool writes in the file while the other reads from it. With this topology, if the design of a certain software work tool is changed, the design of the other software work tool may often be greatly changed. In this case, the two software work tools depend on each other very strongly, making software development and operation very expensive. Accordingly, there is a problem that the design and maintenance of the entire system for supporting the software work are very difficult.